1. Field of the Invention
The present invention relates generally to computer-implemented graphics systems, and in particular, to a method, apparatus, and article of manufacture for modeling objects, systems, and simulations by establishing relationships in an event-driven graph in a computer-implemented graphics system.
2. Description of the Related Art
Computer-implemented graphics systems have been widely used by designers, illustrators, drafters, and engineers for a number of years. In most computer-implemented graphics systems, there are objects such as solids, polylines and blocks meant to represent xe2x80x9creal worldxe2x80x9d objects.
Modern 3D graphics systems allow users to create and animate increasingly sophisticated images. However, 3D graphics systems remain a challenging topic for computer graphics and computer-aided design (CAD), because few systems offer much sophistication. This is mainly due to the fact that developing 3D graphics systems has traditionally been a tedious, time-consuming, and difficult task requiring a high level of expertise by the programmer. As a result, most systems suffer from being the xe2x80x9clowest common denominatorxe2x80x9d.
Moreover, most 3D graphics systems provide very simple interfaces to end-users and application developers. For example, they may provide a set of drawing commands that can be used to create visual representations of modeled 3D objects and simulations, but they rarely allow end-users or application developers to exploit any correlation between modeled objects and object-oriented programming techniques. While some object-oriented techniques are available, they do not go far enough. Consequently, there is a need in the art for 3D graphics systems that provide an improved object-oriented programming environment accessible to end-users and application developers.
To address the requirements described above, the present invention discloses a computer-implemented method, apparatus, and article of manufacture defining an object-oriented framework for describing three-dimensional (3D) graphical objects, systems, and simulations. An object, system, or simulation is implemented as a directed multi-graph that includes one or more nodes connected by zero or more edges. A directed multi-graph engine in a graphics computer program processes the directed multi-graphs, wherein each node in the graph provides specific functionality as it defines a component of an object, system, or simulation, and the edges define the relationships between the nodes. There are no restrictions on node types, and thus nodes may represent graphic objects (a visual representation), rules (rule-base behavior), attributes (data that does not affect the fundamental definition of the object), properties (data that affects the fundamental definition of the object), behaviors (methods), finite state machines (a sequence of actions and states), and user-defined node types. There are no restrictions on edge types, and thus edges may represent event filters, connectivity graphic and logical), data, constraints, and user-defined edge types. Events traverse the graph, wherein edges determine if and how traversal of the nodes is performed, and any node may perform some sequence of operations in response to this traversal and the state of the graph.